package tests;

import common.Utils;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.time.Duration;

public class EditPage extends Utils {
    public static String url = "http://124.223.114.169:8080/blog_edit.html";//文章编辑页面的URL
    public EditPage() {
        super(url);
    }

    /**
     * 成功编辑 ---向文章标题框写入内容、向编辑框写入内容
     */
    public void editSuc() {
        //向文章标题框写入内容
        String sendTitle = "我写的文章标题";
        WebElement ele =   driver.findElement(By.cssSelector("#title"));
        ele.sendKeys(sendTitle);


        //向编辑框写入内容
        //  无法输入博客内容   ---两种方法
        //      0）无法输入
        //      1）博客内容本身就有默认内容，我们不需要手动实现
        //      2）通过键盘操作来实现（老师后边会讲到）
        //0）：
//        WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(2));
//        wait.until(ExpectedConditions.presenceOfElementLocated(By.cssSelector("#editor > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll")));//该条件表示元素已存在于 DOM 中（但不一定可见或可交互）
//        WebElement ele = driver.findElement(By.cssSelector("#editor > div.CodeMirror.cm-s-default.CodeMirror-wrap > div.CodeMirror-scroll > div.CodeMirror-sizer > div > div > div > div.CodeMirror-code > div > pre"));
//        ele.sendKeys("我写的博客的内容");
        driver.findElement(By.cssSelector("#submit")).click();
        //发布成功，跳转到博客列表页，找一下刚才发布的文章的信息
        String curURL = driver.getCurrentUrl();
        assert curURL.equals("http://124.223.114.169:8080/blog_list.html");
        assert sendTitle.equals(driver.findElement(By.cssSelector("body > div.container > div.right > div:nth-child(4) > div.date")).getText());
        //注意：这里如果页面排布逻辑是新发布的在上边，会更方便选择器的使用。当前，需要总是更改选择器中的一些“参数”
    }
}
